Building Program Understanding Tools Using Visitor Combinators
نویسندگان
چکیده
Program understanding tools manipulate program representations, such as abstract syntax trees, control-flow graphs, or data-flow graphs. This paper deals with the use of visitor combinators to conduct such manipulations. Visitor combinators are an extension of the well-known visitor design pattern. They are small, reusable classes that carry out specific visiting steps. They can be composed in different constellations to build more complex visitors. We evaluate the expressiveness, reusability, ease of development, and applicability of visitor combinators to the construction of program understanding tools. To that end, we conduct a case study in the use of visitor combinators for control-flow analysis and visualization as used in a commercial Cobol program understanding tool. 1998 ACM Computing Classification System: D.2.9, D.2.2, D.2.5, D.2.7
منابع مشابه
Source model analysis using the JJTraveler visitor combinator framework
Program understanding tools manipulate program representations, such as abstract syntax trees, controlflow graphs, or data-flow graphs. This paper deals with the use of visitor combinators to conduct such manipulations. Visitor combinators are an extension of the well-known visitor design pattern. They are small, reusable classes that carry out specific visiting steps. They can be composed in d...
متن کاملTheory Presentation Combinators
We motivate and give semantics to theory presentation combinators as the foundational building blocks for a scalable library of theories. The key observation is that the category of contexts and fibered categories are the ideal theoretical tools for this purpose.
متن کاملTag-Free Combinators for Binding-Time Polymorphic Program Generation
Binding-time polymorphism enables a highly flexible bindingtime analysis for offline partial evaluation. This work provides the tools to translate this flexibility into efficient program specialization in the context of a polymorphic language. Following the cogen-combinator approach, a set of combinators is defined in Haskell that enables the straightforward transcription of a bindingtime polym...
متن کاملFunctional Visitors Revisited
In object-oriented programming the visitor design pattern allows for the addition of new operations on a data hierarchy, but lends itself to scattered traversal code and makes visitors difficult to combine. Previous attempts to solve these issues have separated traversal code from the data structure but still face a lack of modularity in visitor computation making it difficult– if not impossibl...
متن کاملHosting a J-1 Exchange Visitor
Hosting a J-1 Exchange Visitor The purpose of the J-1 Exchange Visitor Program is to promote international educational and cultural exchange to develop mutual understanding between the people of the U.S. and other countries. J-1 Exchange Visitor Program: Overview [1] ● J-1 Exchange Visitor Program: Introduction and Basic Concepts [2] ● Inviting a J-1 Exchange Visitor – Information for Faculty [...
متن کامل